﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using Modelo;

namespace Proceso
{
    public class GestorVenta
    {
        public static int verificarCodigo(List<Venta> ventas, string codigo)
        {
            int index = 0;
            foreach (Venta venta in ventas)
            {
                if (venta.IdProducto == codigo)
                    return index;
                index++;
            }
            return -1;
        }
        public static void AlmacenarVenta(List<Venta> ventas, string CiCliente, string CiEmpleado, string fecha,string NitSucursal,string nombre,string detalle)
        {
            try
            {
                
                if(String.IsNullOrEmpty(CiCliente))
                    throw new Exception("Ingrese un Ci o NIT para el cliente");
                if (String.IsNullOrEmpty(nombre))
                    throw new Exception("Ingrese un nombre para el cliente");
                
                    if (ventas.Count == 0)
                    throw new Exception("No registro ningun producto");
                DateTime fec = Convert.ToDateTime(fecha);
                string factura = BaseDatos.BDVentas.insertarFactura(NitSucursal, nombre, detalle);
                foreach (Venta venta in ventas)
                    BaseDatos.BDVentas.registrarVenta(fec, CiCliente, CiEmpleado, venta, factura);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        
        }
        public static Venta anadirProducto(string codigoProducto, string cantidad)
        {
            try
            {
                if (String.IsNullOrEmpty(codigoProducto))
                    throw new Exception("Ingrese un codigo");
                int cod=Convert.ToInt32(codigoProducto);
                if (cod < 1)
                    throw new Exception("Codigo invalido");
                
                int cant = Convert.ToInt32(cantidad);
                if (cant < 1) throw new Exception("Cantidad invalida");
                return BaseDatos.BDProducto.buscarProducto(codigoProducto, cant);
            }
            catch (FormatException)
            {
                throw new Exception("Cantidad y codigo deben ser valores numericos");
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
    }
}
